extends Control


@onready var 玩家UI: CanvasLayer = $"玩家UI"
@onready var 玩家背包界面: Control = $"玩家背包界面"
@onready var 暂停界面: Control = $暂停界面
@onready var 输入操作控制节点: Node = $"../../输入操作控制节点"
@onready var 武器屏幕显示: CanvasLayer = $"../../第一人称武器与相机/第一人称相机/武器屏幕显示"


@export_enum("玩家UI","背包","暂停") var 当前GUI:String
var GUI字典:Dictionary = {"玩家UI":"玩家UI","背包":"玩家背包界面","暂停":"暂停界面"}


func _ready() -> void:
	切换GUI("玩家UI")


func _input(event: InputEvent) -> void:
	if event.is_action_released("背包") and 当前GUI != "暂停" :
		更换GUI("背包")
		更换GUI操作模式()
	if event.is_action_released("暂停") and 当前GUI != "背包" :
		更换GUI("暂停")
		暂停界面.初始化()
		更换GUI操作模式()




func 更换GUI操作模式():
	if GlobalFunc.启动游戏输入:
		GlobalFunc.启动游戏输入 = false
		GlobalFunc.暂停游戏(false)
		Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
		
	else :
		GlobalFunc.启动游戏输入 = true
		GlobalFunc.暂停游戏(true)
		Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
		



func 更换GUI(UI键值:String):
	if 当前GUI != UI键值:
		当前GUI = UI键值
		切换GUI(UI键值)
	else :
		切换GUI("玩家UI")


func 切换GUI(GUI索引:String):
	for i in self.get_children(false):
		i.visible = false
	var 当前节点 = get_node_or_null(GUI字典.get(GUI索引))
	当前节点.visible = true
	当前GUI = GUI索引
